#define _CRT_SECURE_NO_WARNINGS
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cmath>
using namespace std;

//class A
//{
//private:
//	int _a;
//public:
//	A(int a = 10)
//		:_a(a)
//	{ }
//	A(const A& aa)
//		:_a(aa._a)
//	{ }
//	class B
//	{
//	private:
//		int _b;
//	};
//};
//
//void func1(A aa)
//{
//
//}
//int main()
//{
//	A aa;
//	cout << sizeof(aa) << endl;
//	A::B bb;
//	A aa1 = 1;
//	func1(aa1);
//
//	return 0;
//}

class A
{
public:
	A()
		:_a(2)
	{
		cout << "A()" << endl;
	}
	A(const A& aa)
		:_a(aa._a)
	{
		cout << "A(&)" << endl;
	}
	~A()
	{
		_a = 0;
		cout << "~A()" << endl;
	}
private:
	int _a;
};

int main()
{
	/*A* pa1 = new A;
	delete pa1;*/
	A* pp1 = (A*)malloc(sizeof(A));
	free(pp1);
	return 0;
}